//输入一个字符串，打印出该字符串中字符的所有排列
//输入：abc
//输出:abc,acb,bac.bca,cab,cba

// function permutation(strs){
//     if(strs === null || strs.length === 0)
//         return;
//     Permutation(strs,strs);
// }
//
// function Permutation(pStr,pBegin) {
//     if(pBegin.length <= pStr.length){
//         return pStr;
//     }
//     else{
//         for(let i = 0;i < pBegin.length;i ++){
//             let temp = pBegin[i];
//             pBegin[i] =
//         }
//     }
// }
var strs = "abc";
function fullpermutate(str) {
    var result = [];
    if (str.length > 1) {
        //遍历每一项
        for (var m = 0; m < str.length; m++) {
            //拿到当前的元素
            var left = str[m];
            //除当前元素的其他元素组合
            var rest = str.slice(0, m) + str.slice(m + 1, str.length);
            //上一次递归返回的全排列
            var preResult = fullpermutate(rest);
            //组合在一起
            for (var i = 0; i < preResult.length; i++) {
                var tmp = left + preResult[i];
                result.push(tmp);
            }
        }
    } else if (str.length == 1) {
        result.push(str);
    }
    return result;
}
console.log(fullpermutate(strs));
function test(strs) {
    if(strs == '\0')
        return strs;
    else{
        test(strs)
    }
}